package com.tdd.fixtures;

import java.math.BigDecimal;

import com.tdd.RpnCalculator;

public class UseRpnCalculator {
	RpnCalculator calculator = CalculatorUnderTest.calculator;

	public void input(String value) {
		calculator.push(new BigDecimal(value));
	}

	public void enter() {
		calculator.enter();
	}

	public void operate(String operatorName) {
		calculator.execute(operatorName);
	}

	public String result() {
		String result = buildResult();
		calculator.execute("clear");
		return result;
	}

	public void clear() {
		calculator.execute("clear");
	}
	
	private String buildResult() {
		StringBuilder builder = new StringBuilder();

		boolean first = true;
		while (calculator.stackSize() > 0) {
			if (first) {
				first = false;
			} else {
				builder.append(", ");
			}
			builder.append(calculator.pop());
		}

		return builder.toString();
	}
}
